home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-04d.zip / 04d / Hity z okladki / Plus Firma / AccessRT / Office1.cab / OCP.SLL / pivot / pbpivot.scr < prev    next >
Text File  |  2003-10-09  |  50KB  |  2,068 lines

  1. var m_phost;
  2. var m_ilastdisp;
  3. var m_aridisp;
  4. var m_aridispRuntime;
  5. var m_iseltype;
  6. var m_fDesign;
  7. var m_paridispUse;
  8. var m_ppanels;
  9. var m_pDSC;
  10. var m_strConn;
  11. var m_Selection;
  12. var m_Selection0;
  13. var m_strCommand;
  14. var m_iDSC;
  15. var m_strDataMember;
  16. var m_finited = false;
  17. function init()
  18.  {
  19.  m_ppanels = new Array();
  20.  m_phost = external.Host;
  21.  obpicker.This = obpicker;
  22.  m_ilastdisp = 0;
  23.  m_aridisp = new Array(0xF333,0x149D,0x141D,0x1015,0x15,0x11,0x11,0x11);
  24.  m_aridispRuntime = new Array(0x233,0x49D,0x41D,0x015,0x15,0x11,0x11,0x11);
  25.  initStdPair(mtbgen,mtbgenbar,fngenupdate,m_ppanels,fnnone);    
  26.  initStdPair(mtbplformat,mdivplformatbar,fnplformatupdate,m_ppanels,fnformatinit); 
  27.  initStdPair(mtbfiformat,mdivfiformatbar,fnfiformatupdate,m_ppanels,fnfiinit); 
  28.  initStdPair(mtbcaption,mtbcaptionbar,fncapupdate,m_ppanels,fncapinit);   
  29.  initStdPair(mtbshow,mtbshowbar,fnshowupdate,m_ppanels,fnshowinit);    
  30.  initStdPair(mtbtotals,mtbtotalsbar,fntotalsupdate,m_ppanels,fntotalsinit);  
  31.  initStdPair(mtbgrp,mtbgrpbar,fngrpupdate,m_ppanels,fngrpinit);     
  32.  initStdPair(mtbsortfilter,mtbsortfilterbar,fnsfupdate,m_ppanels,fnsfinit); 
  33.  initStdPair(mtbdsf,mtbdsfbar,fndsfupdate,m_ppanels,fndsfinit);     
  34.  initStdPair(mtbaxis,mtbaxisbar,fnaxisupdate,m_ppanels,fnaxisinit);    
  35.  initStdPair(mtbexp,mtbexpbar,fnexpupdate,m_ppanels,fnexpinit);     
  36.  initStdPair(mtbgfformat,mtbgfformatbar,fngfupdate,m_ppanels,fngfinit);  
  37.  initStdPair(mtbpladvanced,mdivpladvancedbar,fnadvupdate,m_ppanels,fnadvinit); 
  38.  initStdPair(mtbtitleformat,mdivtitleformatbar,fntbupdate,m_ppanels,fntbinit); 
  39.  initStdPair(mtbpac,mdivpac,fnpacupdate,m_ppanels,fnpacinit);     
  40.  initStdPair(mtbdata,mtbdatabar,fndataupdate,m_ppanels,fndatainit);     
  41.          
  42.      if(document.dir == "rtl")
  43.             fninitrtl();
  44.  initStdBtn(imgtoolbar,1,fntoolbar);
  45.  initStdBtn(imgbold,1,fnbold);
  46.  initStdBtn(imgitalic,1,fnital);
  47.  initStdBtn(imgunderline,1,fnunderline);
  48.  initStdBtn(imgtitlebold,1,fntitlebold);
  49.  initStdBtn(imgtitleitalic,1,fntitleital);
  50.  initStdBtn(imgtitleunderline,1,fntitleunderline);
  51.  initStdBtn(imgpacbold,1,fncapbold);
  52.  initStdBtn(imgpacitalic,1,fncapital);
  53.  initStdBtn(imgpacunderline,1,fncapunderline);
  54.  initStdBtn(imgexpand,1,fnshowexpand);
  55.  initStdBtn(imgfieldlist,1,fnshowfieldlist);
  56.  initStdBtn(imgtitle,1,fnshowtitle);
  57.  initStdBtn(imghelp,0,fnhelp);
  58.  initStdBtn(imgdrop,1,fnshowdrop);
  59.      m_fDesign = external.UserMode;
  60.      if (m_fDesign)
  61.         m_paridispUse = m_aridisp;
  62.      else
  63.         m_paridispUse = m_aridispRuntime;
  64.      
  65.      fnfiinit();
  66.  mtbfiformat.style.display = "";
  67.  mtbfiformat.Panel.style.display = "";
  68.      mtbfiformat.State = 1;
  69.      fnformatinit();
  70.  mtbplformat.style.display = "";
  71.  mtbplformat.Panel.style.display = "";
  72.      mtbplformat.State = 1;
  73.      m_ilastdisp=6;
  74.      AddOpenPanel(mtbplformat);
  75.      AddOpenPanel(mtbfiformat);
  76.  AddOpenPanel(mtbgen);
  77.  fnclearopts(slfontlist);
  78.      fnFontInit(slfontlist,m_phost);
  79.  fnclearopts(sltitlefontlist);
  80.  fnFontInit(sltitlefontlist,m_phost);
  81.  fnclearopts(slcapfontlist);
  82.  fnFontInit(slcapfontlist,m_phost);
  83.      document.body.onclick = fnclean;  
  84.      m_finited = true;
  85.  SelectionChanged();
  86.  }
  87. function fnclean()
  88.  {
  89.  obpicker.Close();
  90.  }
  91. function fninitrtl()
  92.     {
  93.     var iln = m_ppanels.length;
  94.     for(var i=0;i < iln; i++)
  95.         {
  96.    var tarr = document.all(m_ppanels[i].id + "arr");
  97.         tarr.parentElement.align = "left"; 
  98.         }
  99.         tdfontlist.align = "right";
  100.         tdfontsize.align = "right";
  101.         tdtitlefontlist.align = "right";
  102.         tdtitlefontsize.align = "right";
  103.         tdcapfontlist.align = "right";
  104.         tdcapfontsize.align = "right";
  105.         
  106.     }
  107. function SelectionChanged()
  108.     {
  109.     if(!m_finited)
  110.         return;
  111.      if(external != null && external.Host != null)
  112.   {
  113.       m_phost = external.Host;
  114.   if(external.HostType != 2 || (external.UserMode ^ m_fDesign))
  115.    {
  116.    window.location.href= "../core/pbmain.htm";
  117.    return;    
  118.    }
  119.          m_Selection = m_phost.Selection;
  120.          m_Selection0 = m_phost.Selection(0);
  121.   switch (fnWrapTypeName(m_Selection))
  122.    {
  123.    case "PivotView":
  124.     m_iseltype = 0;
  125.     fnselectdisp(m_paridispUse[0]);
  126.     fndispview();
  127.     break;
  128.    case "PivotFields":
  129.     m_iseltype = 1;
  130.     fnselectdisp(m_paridispUse[1]);
  131.     fndispfield();
  132.     break;
  133.    case "PivotTotals":
  134.     m_iseltype = 2;
  135.     fnselectdisp(m_paridispUse[2]);
  136.     fndisptot();
  137.     break;
  138.    case "PivotMembers":
  139.     if(m_Selection.Count == 1 && m_Selection0.IsTotal)
  140.       {
  141.       m_iseltype = 4;
  142.       fnselectdisp(m_paridispUse[4]);
  143.       fndispsub();
  144.       }
  145.     else
  146.       {
  147.       m_iseltype = 3;
  148.       fnselectdisp(m_paridispUse[3]);
  149.       fndispmem();
  150.       }
  151.     break;
  152.    case "PivotAggregates":
  153.     m_iseltype = 5;
  154.     fnselectdisp(m_paridispUse[5]);
  155.                  inplSelection.value=divSelGen.innerText;
  156.     break;
  157.    case "PivotRange":
  158.     m_iseltype = 6;
  159.     fnselectdisp(m_paridispUse[6]);
  160.                  inplSelection.value=divSelGen.innerText;
  161.     break;
  162.    case "PivotDetailRange":
  163.     m_iseltype = 7;
  164.     fnselectdisp(m_paridispUse[7]);
  165.               inplSelection.value=divSelGen.innerText;
  166.     break;
  167.    default:
  168.     m_iseltype = -1;
  169.               inplSelection.value=divSelNone.innerText;
  170.                     if (m_fDesign)
  171.                         {
  172.                         fnselectdisp(0x9011);
  173.                         }
  174.                     else
  175.                     {
  176.                         fnselectdisp(0x11);
  177.                     }
  178.                     fnnothingsel();
  179.                     
  180.     break;
  181.    }
  182.   fnUpdate(m_ppanels);
  183.   fnsize();
  184.   fnclean();
  185.   fnbgcheck();  
  186.   }
  187.  else
  188.   {
  189.   m_phost = null;
  190.          m_Selection = null;
  191.          m_Selection0 = null;
  192.   CollectGarbage();
  193.   }
  194.  }
  195. function LostFocus()
  196.  {
  197.  if(external != null && external.Host != null)
  198.   {
  199.              var pae = document.activeElement;
  200.   if(pae != null)
  201.    {
  202.    var pfn = pae.Function;
  203.    if(pfn != null)
  204.                          {
  205.                   fnFocusState(false);
  206.     pfn();
  207.                   fnFocusState(true);
  208.                          }
  209.    }
  210.   }
  211.  }  
  212. function fnsize()
  213.  {
  214.  fninitsize(m_ppanels);
  215.  }
  216. function fnformatinit()
  217.     {
  218.     initStdEdit(inpltitle,fnpltitle,false);
  219.     }
  220. function fnfiinit()
  221.     {
  222.     initStdEdit(insfmtwd,fnsfmtwd,false);
  223.     }
  224. function fncapinit()
  225.     {
  226.     initStdEdit(infldcap,fnfldcap,false);
  227.     initStdEdit(infldsetcap,fnfldsetcap,false);
  228.     }
  229. function fnshowinit()
  230.     {
  231.     }
  232. function fntotalsinit()
  233.     {
  234.     }
  235. function fngrpinit()
  236.     {
  237.     
  238.     }
  239. function fnsfinit()
  240.     {
  241.     }
  242. function fndsfinit()
  243.     {
  244.     initStdEdit(indsfmaxwd,fndsfmaxwd,false);
  245.     initStdEdit(indsfmaxht,fndsfmaxht,false);
  246.     initStdEdit(indsfwidth,fndsfwidth,false);
  247.     initStdEdit(indsfrwht,fndsfrwht,false);
  248.     }
  249. function fnaxisinit()
  250.     {
  251.     }
  252. function fnexpinit()
  253.     {
  254.     
  255.     }
  256. function fngfinit()
  257.     {
  258.     initStdEdit(ingfwidth,fngfwidthchange,false);
  259.     }
  260. function fnadvinit()
  261.     {
  262.     initStdEdit(inadvmaxheight,fnadvheight,false);
  263.     initStdEdit(inadvmaxwidth,fnadvwidth,false);
  264.     initStdEdit(inplheight,fnplheight,false);
  265.     initStdEdit(inplwidth,fnplwidth,false);
  266.     }
  267. function fntbinit()
  268.     {
  269.     }
  270. function fnpacinit()
  271.     {
  272.     initStdEdit(inadvrowcap,fnadvrowcap,false);
  273.     initStdEdit(inadvcolcap,fnadvcolcap,false);
  274.     initStdEdit(inadvdatacap,fnadvdatacap,false);
  275.     initStdEdit(inadvfilcap,fnadvfilcap,false);
  276.     }
  277. function fndatainit()
  278.     {
  279.     initStdEdit(inadvconn,fnadvconn,false);
  280.     initStdEdit(inadvcommand,fnadvcommand,false);
  281.     }
  282. function fndispmem()
  283.  {
  284.  divtotadv.style.display = "none";
  285.  divpladv.style.display = "none";
  286.  divfiadv.style.display = "none";
  287.  divmemadv.style.display = "";
  288.  tdfflabel.innerText = divFormat.innerText;
  289.  tdexptab.innerHTML = divTotFunc.innerText;
  290.  tbfun.style.display = "";
  291.  tbfldcap.style.display = "none";
  292.  tbcap.style.display = "";
  293.  tbcapalign.style.display = "none";  
  294.  tbsfmtfont.style.display = "";
  295.  tbsfmtfont2.style.display = "";
  296.  tbsfmtbg.style.display = "";
  297.  tbsfmtalign.style.display = "";
  298.  tbsfmtnfmt.style.display = "none";
  299.  tbsfmtsize.style.display = "none";
  300.      inplSelection.value = divSelItem.innerText;
  301.  }
  302. function fndispsub()
  303.  {
  304.  tdfflabel.innerHTML = divFormat.innerText;
  305.  tbsfmtfont.style.display = "";
  306.  tbsfmtfont2.style.display = "";
  307.  tbsfmtbg.style.display = "";
  308.  tbsfmtalign.style.display = "none";
  309.  tbsfmtnfmt.style.display = "none";
  310.  tbsfmtsize.style.display = "none";
  311.      inplSelection.value=divSelSubtot.innerText;
  312.  }
  313. function fndisptot()
  314.  {
  315.  tdcaplab.innerHTML = divTotCap.innerText;
  316.  divtotadv.style.display = "";
  317.  divpladv.style.display = "none";
  318.  divfiadv.style.display = "none";
  319.  divmemadv.style.display = "none";
  320.  var psel = m_Selection0;
  321.      
  322.  if(m_iseltype == 2)
  323.         {
  324.         tbfun.style.display = "";
  325.         
  326.         tdexptab.innerHTML = divTotFunc.innerText;
  327.         }
  328.  tdfflabel.innerText = divFormat.innerText;
  329.  tbfldcap.style.display = "none";
  330.  tbcap.style.display = "";
  331.  tbcapalign.style.display = "";  
  332.  tbsfmtfont.style.display = "";
  333.  tbsfmtfont2.style.display = "";
  334.  tbsfmtbg.style.display = "";
  335.  tbsfmtalign.style.display = "";
  336.  tbsfmtnfmt.style.display = "";
  337.  tbsfmtsize.style.display = "";
  338.      inplSelection.value=divSelTots.innerText;
  339.  if(m_phost.ProviderType == 3 || m_iseltype == 1) 
  340.         {
  341.          mtbexp.style.display ="none";
  342.          mtbexp.Panel.style.display ="none";
  343.          m_ilastdisp = m_ilastdisp & (0xFFFF - (1 << mtbexp.Index));
  344.         }
  345.      tbfmtlabel.width = 126;
  346.  }
  347. function fnnothingsel()
  348.     {
  349.     mtbfiformat.style.display ="none";
  350.     mtbfiformat.Panel.style.display ="none";
  351.     m_ilastdisp = m_ilastdisp & (0xFFFF - (1 << mtbfiformat.Index));
  352.     divtotadv.style.display = "none";
  353.     divpladv.style.display = "";
  354.     divfiadv.style.display = "none";
  355.     divmemadv.style.display = "none";
  356.     
  357.     }
  358. function fndispview()
  359.  {
  360.  divtotadv.style.display = "none";
  361.  divpladv.style.display = "";
  362.  divfiadv.style.display = "none";
  363.  divmemadv.style.display = "none";
  364.      
  365.  mtbfiformat.style.display ="none";
  366.  mtbfiformat.Panel.style.display ="none";
  367.  m_ilastdisp = m_ilastdisp & (0xFFFF - (1 << mtbfiformat.Index));
  368.      
  369.  tdfflabel.innerText = divFiLabFormat.innerText;
  370.  if(m_phost.ProviderType != 2) 
  371.         {
  372.          mtbdsf.style.display ="none";
  373.          mtbdsf.Panel.style.display ="none";
  374.          m_ilastdisp = m_ilastdisp & (0xFFFF - (1 << mtbdsf.Index));
  375.         }
  376.  tbplshow.style.display = "";
  377.  tbplshow2.style.display = "";
  378.  tbplshow3.style.display = "";
  379.  tbsfmtfont.style.display = "";
  380.  tbsfmtfont2.style.display = "";
  381.  tbsfmtbg.style.display = "";
  382.  tbsfmtalign.style.display = "none";
  383.  tbsfmtnfmt.style.display = "none";
  384.  tbsfmtsize.style.display = "none";
  385.      inplSelection.value=divSelPL.innerText;
  386.  }
  387. function fndispfield()
  388.  {
  389.  var pfs = m_Selection0.FieldSet;
  390.  var psel = m_Selection0;
  391.  tdfflabel.innerHTML = divFormat.innerText;
  392.  tdcaplab.innerHTML = divCaps.innerText;
  393.  divtotadv.style.display = "none";
  394.  divpladv.style.display = "none";
  395.  divfiadv.style.display = "";
  396.  divmemadv.style.display = "none";
  397.  tbplshow.style.display = "";
  398.  tbplshow2.style.display = "";
  399.  tbplshow3.style.display = "";
  400.      
  401.  tbcap.style.display = "";
  402.  tbfldcap.style.display = "";
  403.  tbcapalign.style.display = "none";
  404.      
  405.   {
  406.   mtbexp.style.display = "none";
  407.   mtbexp.Panel.style.display = "none";
  408.   m_ilastdisp = m_ilastdisp & (0xFFFF - (1 << mtbexp.Index));
  409.   }
  410.         
  411.      
  412.  if(pfs.Orientation & 3)
  413.   {
  414.       
  415.          tbsfmtalign.style.display = "none";
  416.          tbsfmtnfmt.style.display = "none";
  417.          tbsfmtsize.style.display = "";
  418.          mtbsortfilter.style.display = "";
  419.          
  420.          tbfmtlabel.width = 86;
  421.          if (pfs.Orientation & 1)
  422.             inplSelection.value=divSelColF.innerText;
  423.          else
  424.             inplSelection.value=divSelRowF.innerText;
  425.   }
  426.  else
  427.   {
  428.       if(pfs.Orientation & 4)
  429.              {
  430.           
  431.              tbsfmtalign.style.display = "none";
  432.              tbsfmtnfmt.style.display = "none";
  433.              tbsfmtsize.style.display = "none";
  434.              inplSelection.value=divSelFilter.innerText;
  435.              
  436.              mtbsortfilter.style.display = "none";
  437.              mtbsortfilter.Panel.style.display = "none";
  438.    m_ilastdisp = m_ilastdisp & (0xFFFF - (1 << mtbsortfilter.Index));
  439.              
  440.              mtbgfformat.style.display = "none";
  441.              mtbgfformat.Panel.style.display = "none";
  442.              m_ilastdisp = m_ilastdisp & (0xFFFF - (1 << mtbgfformat.Index));
  443.              }
  444.          else
  445.                 {
  446.                 inplSelection.value=divSelDetailF.innerText;
  447.              tbfmtlabel.width = 126;
  448.                  tbsfmtalign.style.display = "";
  449.                  tbsfmtnfmt.style.display = "";
  450.                  tbsfmtsize.style.display = "";
  451.                 mtbsortfilter.style.display = "";
  452.                 
  453.                 }
  454.   }
  455.  tbsfmtfont.style.display = "";
  456.  tbsfmtfont2.style.display = "";
  457.  tbsfmtbg.style.display = "";
  458.  }
  459. function fnpivotaddopts(control, string, value)
  460.     {
  461.     var opt;
  462.     opt = document.createElement("OPTION");
  463.     opt.text = string;
  464.     opt.value = value;
  465.     control.options.add(opt);
  466.     }
  467. function fngrpupdate()
  468.     {
  469.     
  470.     }
  471. function fnpacupdate()
  472.  {
  473.  var prc = m_phost.ActiveView.RowAxis.Label;
  474.  var pcc = m_phost.ActiveView.ColumnAxis.Label;
  475.  var pdc = m_phost.ActiveView.DataAxis.Label;
  476.  var pfc = m_phost.ActiveView.FilterAxis.Label;
  477.  inadvrowcap.value = prc.Caption;
  478.  inadvcolcap.value = pcc.Caption;
  479.  inadvfilcap.value = pfc.Caption;
  480.  inadvdatacap.value = pdc.Caption;
  481.  var ffnt = true;
  482.  if(!prc.Font.Bold || !pcc.Font.Bold || !pdc.Font.Bold || !pfc.Font.Bold)
  483.   ffnt = false; 
  484.  fnBtnUpdate(imgpacbold,ffnt);
  485.  ffnt = true;
  486.  if(!prc.Font.Italic || !pcc.Font.Italic || !pdc.Font.Italic || !pfc.Font.Italic )
  487.   ffnt = false; 
  488.  fnBtnUpdate(imgpacitalic ,ffnt);
  489.  ffnt = true;
  490.  if(!prc.Font.Underline || !pcc.Font.Underline || !pdc.Font.Underline || !pfc.Font.Underline )
  491.   ffnt = false; 
  492.  fnBtnUpdate(imgpacunderline ,ffnt);
  493.  if((prc.Font.Name == pcc.Font.Name) && (pdc.Font.Name == pfc.Font.Name) && (prc.Font.Name == pfc.Font.Name))
  494.   fnsetselect(prc.Font.Name,slcapfontlist);
  495.  if((prc.Font.Size == pcc.Font.Size) && (pdc.Font.Size == pfc.Font.Size) && (prc.Font.Size == pfc.Font.Size ))
  496.   fnsetselect(prc.Font.Size ,slcapfontsize);
  497.  }
  498. function fnadvupdate()
  499.  {
  500.  var psel;
  501.      if (m_iseltype > 0)
  502.         {
  503.         psel = m_Selection0;
  504.         }
  505.  if(m_iseltype == 0 || m_iseltype == -1)
  506.   {
  507.   idadvdet.checked = m_phost.AllowDetails;
  508.   inadvfil.checked = !m_phost.AllowFiltering;
  509.   inadvgrp.checked = !m_phost.AllowGrouping;
  510.   inadvprop.checked = m_phost.AllowPropertyToolbox ;
  511.   inadvautofit.checked = m_phost.AutoFit;
  512.   inadvmaxheight.value = external.DecodeNumber(m_phost.MaxHeight);
  513.   inadvmaxwidth.value = external.DecodeNumber(m_phost.MaxWidth);
  514.          inplheight.value = external.DecodeNumber(m_phost.Height);
  515.          inplwidth.value = external.DecodeNumber(m_phost.Width);
  516.          if (m_phost.HasDetails)
  517.             inadvdetavail.innerHTML = divYes.innerText;
  518.          else
  519.             inadvdetavail.innerHTML = divNo.innerText;
  520.          
  521.   inadvrtl.checked = m_phost.RightToLeft;
  522.   inmemadvae.value   = m_phost.MemberExpand;
  523.   }
  524.  else
  525.   {
  526.   if(m_iseltype == 1)
  527.    {
  528.    var pfs = psel.FieldSet;
  529.                     if(pfs == null)
  530.                         return;
  531.                     tdadvfibfn.innerHTML = psel.BaseName; 
  532.    tdadvfidf.innerHTML = psel.DataField;
  533.    tdadvfidt.innerHTML = fnDataTypeStr(psel.DataType);
  534.    tdadvfifn.innerHTML = psel.Name;
  535.    tdadvfift.innerHTML = fnFieldTypeStr(psel.Type);
  536.    tdadvfifst.innerHTML = fnFieldSetTypeStr(pfs.Type);
  537.    tdadvfifsn.innerHTML = psel.FieldSet.Name;
  538.    tdadvfifsc.innerHTML = fnFieldSetOrientation(pfs.Orientation);
  539.    }
  540.   else
  541.    {
  542.    if(m_iseltype == 2)
  543.     {
  544.                     if (psel.Field != null)
  545.                         tdadvtottsf.innerHTML = psel.Field.DataField;
  546.     tdadvtottn.innerHTML = psel.Name;
  547.     tdadvtottt.innerHTML = fnFieldTypeStr(psel.Type);
  548.     }
  549.    else
  550.     {
  551.     if(m_iseltype == 3)
  552.       {
  553.       tdadvmemname.innerHTML  = psel.Name;
  554.       tdadvmemuiquename.innerHTML = psel.UniqueName; 
  555.                          initemcap.innerHTML = psel.Caption;
  556.       }
  557.     }  
  558.    }
  559.   }
  560.  }
  561. var fInDataUpdate;
  562. function fndataupdate()
  563.     {
  564.     
  565.     
  566.     inadvconn.value = m_phost.ConnectionString;
  567.     fInDataUpdate = true;
  568.     fnpopulatedatasources();
  569.     fInDataUpdate = false;
  570.     }
  571. function fntbupdate()
  572.  {
  573.  var pfn = m_phost.ActiveView.TitleBar.Font;
  574.  fnBtnUpdate(imgtitlebold,pfn.Bold);
  575.  fnBtnUpdate(imgtitleitalic,pfn.Italic);
  576.  fnBtnUpdate(imgtitleunderline,pfn.Underline);
  577.  fnsetselect(pfn.Name,sltitlefontlist);
  578.  fnsetselect(pfn.Size,sltitlefontsize);
  579.  }   
  580. function fnaxisupdate()
  581.  {
  582.  inemprowb.checked = m_phost.ActiveView.RowAxis.DisplayEmptyMembers;
  583.  inempcolb.checked = m_phost.ActiveView.ColumnAxis.DisplayEmptyMembers;
  584.  }
  585. function fnexpupdate()
  586.  {
  587.  var psel = m_Selection0;
  588.      var enumDataType;
  589.  if(m_iseltype == 2)
  590.         {
  591.         enumDataType = psel.Field.DataType;
  592.         fnclearopts(slfunc);
  593.         if (IsFunctionValid(enumDataType, 1))
  594.             fnpivotaddopts(slfunc, divTotSum.innerText,1);
  595.         if (IsFunctionValid(enumDataType, 2))
  596.             fnpivotaddopts(slfunc, divTotCount.innerText,2);
  597.         if (IsFunctionValid(enumDataType, 3))
  598.             fnpivotaddopts(slfunc, divTotMin.innerText,3);
  599.         if (IsFunctionValid(enumDataType, 4))
  600.             fnpivotaddopts(slfunc, divTotMax.innerText,4);
  601.  fnsetselect(psel.Function,slfunc);
  602.         }
  603.  }
  604. function fnsfupdate()
  605.  {
  606.  var psel = m_Selection0;
  607.  var pfn;
  608.  fnsetselect(psel.SortDirection,slsortdir);
  609.  }
  610. function fndsfupdate()
  611.  {
  612.  var psel = m_Selection;
  613.  indsfrwht.value = external.DecodeNumber(psel.DetailRowHeight);
  614.  indsfautofit.checked = psel.DetailAutoFit; 
  615.  indsfwidth.value = external.DecodeNumber(psel.DetailWidth);
  616.  indsfmaxwd.value = external.DecodeNumber(psel.DetailMaxWidth);
  617.  indsfmaxht.value = external.DecodeNumber(psel.DetailMaxHeight);
  618.  }
  619. function fngfupdate()
  620.  {
  621.  var psel = m_Selection0;
  622.  ingfautofit.checked = psel.GroupedAutoFit;
  623.  ingfwidth.value = external.DecodeNumber(psel.GroupedWidth);
  624.  }  
  625. function fnfiformatupdate()
  626.  {
  627.      if (m_iseltype > 4)
  628.         return;
  629.  pfn = fnfontsel();
  630.  if(typeof(pfn.Count) == "number")
  631.   {
  632.   fnBtnUpdate(imgbold,fnfontswitch(pfn(0)).Bold);
  633.   fnBtnUpdate(imgitalic,fnfontswitch(pfn(0)).Italic);
  634.   fnBtnUpdate(imgunderline,fnfontswitch(pfn(0)).Underline);
  635.   fnsetselect(fnfontswitch(pfn(0)).Name,slfontlist);
  636.   fnsetselect(fnfontswitch(pfn(0)).Size,slfontsize);
  637.   }
  638.  else
  639.   {
  640.   fnBtnUpdate(imgbold,fnfontswitch(pfn).Bold);
  641.   fnBtnUpdate(imgitalic,fnfontswitch(pfn).Italic);
  642.   fnBtnUpdate(imgunderline,fnfontswitch(pfn).Underline);
  643.   fnsetselect(fnfontswitch(pfn).Name,slfontlist);
  644.   fnsetselect(fnfontswitch(pfn).Size,slfontsize);
  645.   }
  646.  if(m_iseltype == 1)
  647.          {
  648.   fnsetselect(m_Selection0.NumberFormat,slnfmt);
  649.   fnsetselect(m_Selection0.DetailHAlignment,slhalign);
  650.   }
  651.  else if(m_iseltype == 2)
  652.          {
  653.   fnsetselect(m_Selection0.NumberFormat,slnfmt);
  654.   fnsetselect(m_Selection0.HAlignment,slhalign);
  655.   }
  656.      else if (m_iseltype == 3)
  657.          {
  658.   fnsetselect(m_phost.ActiveView.MemberHAlignment,slhalign);
  659.          }
  660.  if(m_iseltype == 1)
  661.   {
  662.          if (m_Selection0.FieldSet.Orientation & 7)
  663.             {
  664.             insfautofit.checked = m_Selection0.GroupedAutoFit;
  665.             insfmtwd.value = external.DecodeNumber(m_Selection0.GroupedWidth);
  666.             }
  667.          else
  668.             {
  669.             insfmtwd.value = external.DecodeNumber(m_Selection0.DetailWidth);
  670.             insfautofit.checked = m_Selection0.DetailAutoFit;
  671.             }
  672.   }
  673.  else
  674.   {
  675.   if(m_iseltype == 2)
  676.    {
  677.    insfmtwd.value = external.DecodeNumber(m_Selection0.Width);
  678.    insfautofit.checked = m_Selection0.AutoFit;
  679.    }
  680.   }   
  681.  }  
  682. function fnplformatupdate()
  683.  {
  684.  inpltitle.value= m_phost.ActiveView.TitleBar.Caption;
  685.  fnsetselect(m_phost.ActiveView.TotalOrientation,sltotalori);
  686.  }
  687. function fntotalsupdate()
  688.  {
  689.  var psel=m_Selection;
  690.  inflsub.checked = psel.TotalAllMembers;
  691.  fnsetselect(psel.TotalOrientation,sltotalori);
  692.  }
  693. function fngenupdate()
  694.  {
  695.  }
  696. function fnshowupdate()
  697.  {
  698.  fnBtnUpdate(imgexpand,m_phost.DisplayExpandIndicator);
  699.  fnBtnUpdate(imgfieldlist,m_phost.DisplayFieldList);
  700.  fnBtnUpdate(imgtoolbar,m_phost.DisplayToolbar);
  701.      if (m_phost.ActiveView != null)
  702.         {
  703.         tbplshowtitle.style.display = "";
  704.         tbplshowdrop.style.display = "";
  705.         fnBtnUpdate(imgtitle,m_phost.ActiveView.Label.Visible);
  706.         f1 = m_phost.ActiveView.RowAxis.Label.Visible;
  707.         f2 = m_phost.ActiveView.ColumnAxis.Label.Visible;
  708.         f3 = m_phost.ActiveView.FilterAxis.Label.Visible;
  709.         f4 = m_phost.ActiveView.DataAxis.Label.Visible;
  710.         fSet = (f1 || f2 || f3 || f4);
  711.         fnBtnUpdate(imgdrop,fSet);
  712.         }
  713.     else
  714.         {
  715.         tbplshowtitle.style.display = "none";
  716.         tbplshowdrop.style.display = "none";
  717.         }
  718.  }  
  719. function fncapupdate()
  720.  {
  721.  var psel = m_Selection0;
  722.  if(psel.FieldSet != null)
  723.   infldsetcap.value = psel.FieldSet.Caption;
  724.  infldcap.value = psel.Caption;
  725.  if(m_iseltype == 2) 
  726.         fnsetselect(psel.CaptionHAlignment,slcapalign);
  727.      else
  728.         fnsetselect(psel.CaptionAlignment,slcapalign);
  729.  }  
  730. function fntoolbar()
  731.  {
  732.  var fnewstate = !(m_phost.DisplayToolbar);
  733.  m_phost.DisplayToolbar = fnewstate;
  734.  fnerrorchk(m_phost);
  735.  fnBtnUpdate(imgtoolbar,fnewstate);
  736.  }
  737. function fnhelp()
  738.  {
  739.  external.ShowHelp(0);
  740.  }
  741. function fnplcolor()
  742.  {
  743.  m_phost.BackColor = tdplbox.style.backgroundColor;
  744.  fnerrorchk(m_phost);
  745.  } 
  746. function fnplheight()
  747.  {
  748.  m_phost.Height = inplheight.value;
  749.      inadvautofit.checked = false;
  750.  fnerrorchk(m_phost);
  751.  }   
  752. function fnplwidth()
  753.  {
  754.  m_phost.Width = inplwidth.value;
  755.      inadvautofit.checked = false;
  756.  fnerrorchk(m_phost);
  757.  }
  758. function fnpltitle()
  759.  {
  760.  var ptitle = m_phost.ActiveView.TitleBar;
  761.  ptitle.Caption = inpltitle.value;
  762.  fnerrorchk(ptitle);
  763.  } 
  764. function fnshowtitle()
  765.  {
  766.  m_phost.ActiveView.Label.Visible = !(m_phost.ActiveView.Label.Visible);
  767.  fnerrorchk(m_phost);
  768.  } 
  769. function fnshowexpand()
  770.  {
  771.  m_phost.DisplayExpandIndicator = !(m_phost.DisplayExpandIndicator);
  772.  fnerrorchk(m_phost);
  773.  }
  774. function fnshowdrop()
  775.  {
  776.  f1 = m_phost.ActiveView.RowAxis.Label.Visible;
  777.  f2 = m_phost.ActiveView.ColumnAxis.Label.Visible;
  778.  f3 = m_phost.ActiveView.FilterAxis.Label.Visible;
  779.  f4 = m_phost.ActiveView.DataAxis.Label.Visible;
  780.      fSet = !(f1 || f2 || f3 || f4);
  781.  m_phost.ActiveView.RowAxis.Label.Visible = fSet;
  782.  m_phost.ActiveView.ColumnAxis.Label.Visible = fSet;
  783.  m_phost.ActiveView.FilterAxis.Label.Visible = fSet;
  784.  m_phost.ActiveView.DataAxis.Label.Visible = fSet;
  785.  fnerrorchk(m_phost);
  786.  }
  787. function fnshowfieldlist()
  788.  {
  789.  m_phost.DisplayFieldList = !(m_phost.DisplayFieldList);
  790.  fnerrorchk(m_phost);
  791.  }
  792.      
  793. function fnsubtotalflmem()
  794.  {
  795.  event.cancelBubble = true;
  796.  var psel = m_Selection;
  797.  psel.TotalAllMembers = inflsub.checked;
  798.  fnerrorchk(psel);
  799.  inflsub.checked = psel.TotalAllMembers;
  800.  }  
  801. function fntotalorichange()
  802.  {
  803.  var psel = m_Selection;
  804.  psel.TotalOrientation = sltotalori.value;
  805.  fnerrorchk(psel);
  806.  }
  807. function fndetexp()
  808.  {
  809.  event.cancelBubble = true;
  810.  var psel = m_Selection;
  811.  fnerrorchk(psel);
  812.  }
  813. function fndsfrwht()
  814.  {
  815.  var psel = m_Selection;
  816.  psel.DetailRowHeight = indsfrwht.value;
  817.  fnerrorchk(psel);
  818.  }
  819. function fndsfautofit()
  820.  {  
  821.  event.cancelBubble = true;
  822.  var psel = m_Selection;
  823.  psel.DetailAutoFit = indsfautofit.checked;
  824.  fnerrorchk(psel);
  825.  indsfautofit.checked = psel.DetailAutoFit; 
  826.  }
  827. function fndsfwidth()
  828.  {
  829.  var psel= m_Selection;
  830.  psel.DetailWidth = indsfwidth.value;
  831.  fnerrorchk(psel);  
  832.  indsfautofit.checked = false; 
  833.  }
  834. function fndsfmaxwd()  
  835.  {
  836.  var psel= m_Selection;
  837.  psel.DetailMaxWidth = indsfmaxwd.value;
  838.  fnerrorchk(psel);  
  839.  }
  840. function fndsfmaxht()
  841.  {
  842.  var psel= m_Selection;
  843.  psel.DetailMaxHeight = indsfmaxht.value;
  844.  fnerrorchk(psel);  
  845.  }
  846. function fnfont()
  847.  {
  848.  }
  849. function fnhidefield()
  850.  {
  851.      
  852.  }
  853. function fnfldsetcap() 
  854.  {
  855.  var i;
  856.  var psel = m_Selection;
  857.      var pselItem;
  858.  for(i=0;i < psel.Count;i++)
  859.   {
  860.          pselItem = psel(i);
  861.   pselItem.FieldSet.Caption = infldsetcap.value;
  862.   fnerrorchk(pselItem);
  863.   }
  864.  }
  865. function fnfldcap() 
  866.  {
  867.  var i;
  868.  var psel = m_Selection;
  869.      var pselItem;
  870.  for(i=0;i < psel.Count;i++)
  871.   {
  872.          pselItem = psel(i);
  873.   pselItem.Caption = infldcap.value;
  874.   fnerrorchk(pselItem);
  875.   }
  876.  }
  877. function fnsortdir()
  878.  {
  879.  var i;
  880.  var psel = m_Selection;
  881.      var pselItem;
  882.  for(i=0;i < psel.Count;i++)
  883.   {
  884.          pselItem = psel(i);
  885.   pselItem.SortDirection = slsortdir.value;
  886.   fnerrorchk(pselItem);
  887.   }
  888.  } 
  889. function fnfunc()
  890.  {
  891.  var i;
  892.  var psel = m_Selection;
  893.      var pselItem;
  894.  for(i=0;i < psel.Count;i++)
  895.   {
  896.          pselItem = psel(i);
  897.   pselItem.Function = slfunc.value;
  898.   fnerrorchk(pselItem);
  899.   }
  900.  }
  901. function fnemprowb()
  902.  {
  903.  m_phost.ActiveView.RowAxis.DisplayEmptyMembers = inemprowb.checked;
  904.  }
  905. function fnempcolb()
  906.  {
  907.  m_phost.ActiveView.ColumnAxis.DisplayEmptyMembers = inempcolb.checked;
  908.  }
  909. function fnback()
  910.  {
  911.  var psel = fnfontsel();
  912.  var c = psel.Count;
  913.  var pfnt;
  914.  if(typeof(c) == "number")
  915.   {
  916.   for (i = 0; i < c;i++)
  917.    {
  918.    pfnt = fnbgswitch(psel(i),tdbackbox.style.backgroundColor);
  919.    fnerrorchk(pfnt);
  920.    }
  921.       
  922.   }
  923.  else
  924.   {
  925.   pfnt = fnbgswitch(psel,tdbackbox.style.backgroundColor);
  926.   fnerrorchk(pfnt);
  927.          
  928.   }
  929.  }
  930. function fnfont()
  931.  {
  932.  var psel = fnfontsel();
  933.  var pfnt;
  934.  var c = psel.Count;
  935.  if(typeof(c) == "number")
  936.   {
  937.   for (i = 0; i < c;i++)
  938.    {
  939.    pfnt = fnfontswitch(psel(i));
  940.    pfnt.Color = tdfontbox.style.backgroundColor;
  941.    fnerrorchk(pfnt);
  942.    }
  943.       
  944.   }
  945.  else
  946.   {
  947.   pfnt = fnfontswitch(psel);
  948.   pfnt.Color = tdfontbox.style.backgroundColor;
  949.   fnerrorchk(pfnt);
  950.          
  951.   }
  952.  }
  953. function fnbold()
  954.  {
  955.  var psel = fnfontsel();
  956.  var c = psel.Count;
  957.  if(typeof(c) == "number")
  958.   {
  959.   var fbold = false;
  960.   for (i = 0; i < c;i++)
  961.    {
  962.    var pfnt = fnfontswitch(psel(i));
  963.    if(!pfnt.Bold)
  964.     {
  965.     fbold = true;
  966.     break;
  967.     }
  968.    }
  969.          
  970.   for (i = 0; i < c;i++)
  971.    {
  972.    var pfnt = fnfontswitch(psel(i));
  973.    pfnt.Bold = fbold;
  974.    fnerrorchk(pfnt);
  975.    }
  976.   }
  977.  else
  978.   {
  979.   var pfnt = fnfontswitch(psel);
  980.          var fbold = !(pfnt.Bold);
  981.   pfnt.Bold = !(pfnt.Bold);
  982.   fnerrorchk(pfnt);
  983.          
  984.   }
  985.  }
  986. function fnunderline()
  987.  {
  988.  var psel = fnfontsel();
  989.  var c = psel.Count;
  990.  var fnt;
  991.  if(typeof(c) == "number")
  992.   {
  993.   var ful = false;
  994.   for (i = 0; i < c;i++)
  995.    {
  996.    pfnt = fnfontswitch(psel(i));
  997.    if(!pfnt.Underline)
  998.     {
  999.     ful = true;
  1000.     break;
  1001.     }
  1002.    }
  1003.   for (i = 0; i < c;i++)
  1004.    {
  1005.    pfnt = fnfontswitch(psel(i));
  1006.    pfnt.Underline = ful;
  1007.              if (ful)
  1008.                 pfnt.Underline = 1;
  1009.              else
  1010.                 pfnt.Underline = 0;
  1011.    fnerrorchk(pfnt);
  1012.    }
  1013.          
  1014.   }
  1015.  else
  1016.   {
  1017.   pfnt = fnfontswitch(psel);
  1018.          if (pfnt.Underline)
  1019.             pfnt.Underline = 0;
  1020.          else
  1021.             pfnt.Underline = 1;
  1022.   fnerrorchk(pfnt);
  1023.          
  1024.   }
  1025.  }
  1026. function fnital()
  1027.  {
  1028.  var psel = fnfontsel();
  1029.  var c = psel.Count;
  1030.  if(typeof(c) == "number")
  1031.   {
  1032.   var fital = false;
  1033.   for (i = 0; i < c;i++)
  1034.    {
  1035.    var pfnt = fnfontswitch(psel(i));
  1036.    if(!pfnt.Italic)
  1037.     {
  1038.     fital = true;
  1039.     break;
  1040.     }
  1041.    }
  1042.   for (i = 0; i < c;i++)
  1043.    {
  1044.    var pfnt = fnfontswitch(psel(i));
  1045.    pfnt.Italic = fital;
  1046.    fnerrorchk(pfnt);
  1047.    }
  1048.          
  1049.   }
  1050.  else
  1051.   {
  1052.   var pfnt = fnfontswitch(psel);
  1053.   pfnt.Italic = !(pfnt.Italic);
  1054.   fnerrorchk(pfnt);
  1055.          
  1056.   }
  1057.  }
  1058. function fnfontcng()
  1059.  {
  1060.  var psel = fnfontsel();
  1061.  var c = psel.Count;
  1062.  if(typeof(c) == "number")
  1063.   {
  1064.   for (i = 0; i < c;i++)
  1065.    {
  1066.    var pfnt = fnfontswitch(psel(i));
  1067.    pfnt.Name = slfontlist.value;
  1068.    fnerrorchk(pfnt);
  1069.    }
  1070.          
  1071.   }
  1072.  else
  1073.   {
  1074.    var pfnt = fnfontswitch(psel);
  1075.    pfnt.Name = slfontlist.value;
  1076.    fnerrorchk(pfnt);
  1077.              
  1078.   }   
  1079.  }
  1080. function fnfontsize()
  1081.  {
  1082.  var psel = fnfontsel();
  1083.  var c = psel.Count;
  1084.  if(typeof(c) == "number")
  1085.   {
  1086.   for (i = 0; i < c;i++)
  1087.    {
  1088.    var pfnt = fnfontswitch(psel(i));
  1089.    pfnt.Size = slfontsize.value;
  1090.    fnerrorchk(pfnt);
  1091.    }
  1092.          
  1093.   }
  1094.  else
  1095.   {
  1096.   var pfnt = fnfontswitch(psel);
  1097.   pfnt.Size = slfontsize.value;
  1098.   fnerrorchk(pfnt);
  1099.          
  1100.   }
  1101.  }
  1102. function fncapalign()
  1103.     {
  1104.     var psel = m_Selection;
  1105.     var c = psel.Count;
  1106.     var pselItem;
  1107.     for (i = 0;i < c;i++)
  1108.         {
  1109.         pselItem = psel(i);
  1110.         pselItem.CaptionHAlignment = slcapalign.value;
  1111.         fnerrorchk(pselItem); 
  1112.         }
  1113.     }
  1114. function fnhalignchange()
  1115.  {
  1116.  var psel = fnalignsel();
  1117.  var c = psel.Count;
  1118.  var pfnt;
  1119.  if(typeof(c) == "number")
  1120.   {
  1121.   for (i = 0; i < c;i++)
  1122.    {
  1123.    pfnt = fnhalignswitch(psel(i),slhalign.value);
  1124.    fnerrorchk(pfnt);
  1125.    }
  1126.   }
  1127.  else
  1128.   {
  1129.   pfnt = fnhalignswitch(psel,slhalign.value);
  1130.   fnerrorchk(pfnt);
  1131.   }
  1132.  }
  1133. function fnvalignchange()
  1134.  {
  1135.  var psel = fnalignsel();
  1136.  var c = psel.Count;
  1137.  var pfnt;
  1138.  if(typeof(c) == "number")
  1139.   {
  1140.   for (i = 0; i < c;i++)
  1141.    {
  1142.    pfnt = fnvalignswitch(psel(i),slvalign.value);
  1143.    fnerrorchk(pfnt);
  1144.    }
  1145.   }
  1146.  else
  1147.   {
  1148.   pfnt = fnvalignswitch(psel,slvalign.value);
  1149.   fnerrorchk(pfnt);
  1150.   }
  1151.  }
  1152. function fnnumfmtchange()
  1153.  {
  1154.  var psel = m_Selection;
  1155.  var c = psel.Count;
  1156.      var pselItem;
  1157.  for (i = 0;i < c;i++)
  1158.   {
  1159.          pselItem = psel(i);
  1160.   pselItem.NumberFormat = slnfmt.value;
  1161.   fnerrorchk(pselItem); 
  1162.   }
  1163.  }
  1164. function fnsfmtwd()
  1165.  {
  1166.  var psel = m_Selection;
  1167.  var c = psel.Count
  1168.      var pselItem;
  1169.  if(m_iseltype == 1)
  1170.   {
  1171.   for(i=0;i<c;i++)
  1172.    {
  1173.              pselItem = psel(i);
  1174.              if (pselItem.FieldSet.Orientation & 7)
  1175.                     pselItem.GroupedWidth = insfmtwd.value;
  1176.              else
  1177.                      pselItem.DetailWidth = insfmtwd.value;
  1178.              insfautofit.checked = false;
  1179.    fnerrorchk(pselItem);
  1180.    }
  1181.   }
  1182.  else
  1183.   {
  1184.   if(m_iseltype == 2)
  1185.    {
  1186.    for(i=0;i<c;i++)
  1187.     {
  1188.                     pselItem = psel(i);
  1189.     pselItem.Width = insfmtwd.value;     
  1190.     fnerrorchk(pselItem);
  1191.     }
  1192.              insfautofit.checked = false;
  1193.    }
  1194.   }
  1195.  }
  1196. function fnsfautofit()
  1197.  {
  1198.  event.cancelBubble = true;
  1199.  var psel = m_Selection;
  1200.  var c = psel.Count
  1201.      var pselItem;
  1202.  if(m_iseltype == 1)
  1203.   {
  1204.   for(i=0;i<c;i++)
  1205.    {
  1206.              pselItem = psel(i);
  1207.              if (pselItem.FieldSet.Orientation & 7)
  1208.                     {
  1209.                     pselItem.GroupedAutoFit = insfautofit.checked;
  1210.                     
  1211.                     insfmtwd.value = external.DecodeNumber(pselItem.GroupedWidth);
  1212.                     }
  1213.              else
  1214.                     {
  1215.                     pselItem.DetailAutoFit = insfautofit.checked;
  1216.                     
  1217.                      insfmtwd.value = external.DecodeNumber(pselItem.DetailWidth);
  1218.                     }
  1219.    fnerrorchk(pselItem);
  1220.    }
  1221.   }
  1222.  else
  1223.   {
  1224.   if(m_iseltype == 2)
  1225.    {
  1226.    for(i=0;i<c;i++)
  1227.     {
  1228.                     pselItem = psel(i);
  1229.     pselItem.AutoFit = insfautofit.checked;
  1230.     fnerrorchk(pselItem);
  1231.                  insfmtwd.value = external.DecodeNumber(pselItem.Width);
  1232.     }
  1233.    }
  1234.   }
  1235.  } 
  1236. function fntitlefont()
  1237.  {
  1238.  var psel = m_phost.ActiveView.TitleBar.Font;
  1239.  psel.Color = tdtitlefontbox.style.backgroundColor;
  1240.  fnerrorchk(psel);
  1241.  }
  1242. function fntitlebold()
  1243.  {
  1244.  var psel = m_phost.ActiveView.TitleBar.Font;
  1245.  psel.Bold = !(psel.Bold);
  1246.  fnerrorchk(psel);
  1247.  }
  1248. function fntitleital()
  1249.  {
  1250.  var psel = m_phost.ActiveView.TitleBar.Font;
  1251.  psel.Italic = !(psel.Italic);
  1252.  fnerrorchk(psel);
  1253.  }    
  1254. function fntitleunderline()
  1255.  {
  1256.  var psel = m_phost.ActiveView.TitleBar.Font;
  1257.      if (psel.Underline)
  1258.         psel.Underline = 0;
  1259.      else
  1260.         psel.Underline = 1;
  1261.  fnerrorchk(psel);
  1262.  }
  1263. function fntitlefontcng()
  1264.  {
  1265.  var psel = m_phost.ActiveView.TitleBar.Font;
  1266.  psel.Name = sltitlefontlist.value;
  1267.  fnerrorchk(psel);
  1268.  }
  1269. function fntitlefontsize()
  1270.  {
  1271.  var psel = m_phost.ActiveView.TitleBar.Font;
  1272.  psel.Size = sltitlefontsize.value;
  1273.  fnerrorchk(psel);
  1274.  } 
  1275. function fntitleback()
  1276.  {
  1277.  var psel = m_phost.ActiveView.TitleBar;
  1278.  psel.BackColor = tdtitlebackbox.style.backgroundColor;
  1279.  fnerrorchk(psel);
  1280.  }
  1281. function fnadvrowcap()
  1282.  {
  1283.  var psel = m_phost.ActiveView.RowAxis.Label;
  1284.  psel.Caption = inadvrowcap.value;
  1285.  fnerrorchk(psel);
  1286.  }
  1287. function fnadvcolcap()
  1288.  {
  1289.  var psel = m_phost.ActiveView.ColumnAxis.Label;
  1290.  psel.Caption = inadvcolcap.value;
  1291.  fnerrorchk(psel);
  1292.  }
  1293. function fnadvdatacap()
  1294.  {
  1295.  var psel = m_phost.ActiveView.DataAxis.Label;
  1296.  psel.Caption = inadvdatacap.value;
  1297.  fnerrorchk(psel);
  1298.  }
  1299. function fnadvfilcap()
  1300.  {
  1301.  var psel = m_phost.ActiveView.FilterAxis.Label;
  1302.  psel.Caption = inadvfilcap.value;
  1303.  fnerrorchk(psel);
  1304.  }
  1305. function fncapfont()
  1306.  {
  1307.  var prc = m_phost.ActiveView.RowAxis.Label;
  1308.  var pcc = m_phost.ActiveView.ColumnAxis.Label;
  1309.  var pdc = m_phost.ActiveView.DataAxis.Label;
  1310.  var pfc = m_phost.ActiveView.FilterAxis.Label;
  1311.  prc.Font.Color = tdcapfontbox.style.backgroundColor;
  1312.  pcc.Font.Color = tdcapfontbox.style.backgroundColor;
  1313.  pdc.Font.Color = tdcapfontbox.style.backgroundColor;
  1314.  pfc.Font.Color = tdcapfontbox.style.backgroundColor;
  1315.  fnerrorchk(prc);
  1316.  fnerrorchk(pcc);
  1317.  fnerrorchk(pdc);
  1318.  fnerrorchk(pfc);
  1319.  }
  1320. function fncapbold()
  1321.  {
  1322.  var prc = m_phost.ActiveView.RowAxis.Label.Font;
  1323.  var pcc = m_phost.ActiveView.ColumnAxis.Label.Font;
  1324.  var pdc = m_phost.ActiveView.DataAxis.Label.Font;
  1325.  var pfc = m_phost.ActiveView.FilterAxis.Label.Font;
  1326.  var fbold = false;
  1327.  if(!prc.Bold || !pcc.Bold || !pdc.Bold || !pfc.Bold)
  1328.   fbold = true; 
  1329.  prc.Bold = fbold;
  1330.  pcc.Bold= fbold;
  1331.  pdc.Bold= fbold;
  1332.  pfc.Bold= fbold;
  1333.  fnerrorchk(prc);
  1334.  fnerrorchk(pcc);
  1335.  fnerrorchk(pdc);
  1336.  fnerrorchk(pfc);
  1337.  }
  1338. function fncapital()
  1339.  {
  1340.  var prc = m_phost.ActiveView.RowAxis.Label.Font;
  1341.  var pcc = m_phost.ActiveView.ColumnAxis.Label.Font;
  1342.  var pdc = m_phost.ActiveView.DataAxis.Label.Font;
  1343.  var pfc = m_phost.ActiveView.FilterAxis.Label.Font;
  1344.  var fItalic= false;
  1345.  if(!prc.Italic || !pcc.Italic || !pdc.Italic || !pfc.Italic )
  1346.   fItalic= true; 
  1347.  prc.Italic= fItalic;
  1348.  pcc.Italic= fItalic;
  1349.  pdc.Italic= fItalic;
  1350.  pfc.Italic= fItalic;
  1351.  fnerrorchk(prc);
  1352.  fnerrorchk(pcc);
  1353.  fnerrorchk(pdc);
  1354.  fnerrorchk(pfc);
  1355.  }    
  1356. function fncapunderline()
  1357.  {
  1358.  var prc = m_phost.ActiveView.RowAxis.Label.Font;
  1359.  var pcc = m_phost.ActiveView.ColumnAxis.Label.Font;
  1360.  var pdc = m_phost.ActiveView.DataAxis.Label.Font;
  1361.  var pfc = m_phost.ActiveView.FilterAxis.Label.Font;
  1362.  var fUnderline = false;
  1363.  if(!prc.Underline || !pcc.Underline || !pdc.Underline || !pfc.Underline )
  1364.   fUnderline = true; 
  1365.  prc.Underline = fUnderline ;
  1366.  pcc.Underline = fUnderline ;
  1367.  pdc.Underline = fUnderline ;
  1368.  pfc.Underline = fUnderline ;
  1369.  fnerrorchk(prc);
  1370.  fnerrorchk(pcc);
  1371.  fnerrorchk(pdc);
  1372.  fnerrorchk(pfc);
  1373.  }
  1374. function fncapfontcng()
  1375.  {
  1376.  var prc = m_phost.ActiveView.RowAxis.Label.Font;
  1377.  var pcc = m_phost.ActiveView.ColumnAxis.Label.Font;
  1378.  var pdc = m_phost.ActiveView.DataAxis.Label.Font;
  1379.  var pfc = m_phost.ActiveView.FilterAxis.Label.Font;
  1380.  prc.Name = slcapfontlist.value;
  1381.  pcc.Name = slcapfontlist.value;
  1382.  pdc.Name = slcapfontlist.value;
  1383.  pfc.Name = slcapfontlist.value;
  1384.  fnerrorchk(prc);
  1385.  fnerrorchk(pcc);
  1386.  fnerrorchk(pdc);
  1387.  fnerrorchk(pfc);
  1388.  }
  1389. function fncapfontsize()
  1390.  {
  1391.  var prc = m_phost.ActiveView.RowAxis.Label.Font;
  1392.  var pcc = m_phost.ActiveView.ColumnAxis.Label.Font;
  1393.  var pdc = m_phost.ActiveView.DataAxis.Label.Font;
  1394.  var pfc = m_phost.ActiveView.FilterAxis.Label.Font;
  1395.  prc.Size= slcapfontsize.value;
  1396.  pcc.Size= slcapfontsize.value;
  1397.  pdc.Size= slcapfontsize.value;
  1398.  pfc.Size= slcapfontsize.value;
  1399.  fnerrorchk(prc);
  1400.  fnerrorchk(pcc);
  1401.  fnerrorchk(pdc);
  1402.  fnerrorchk(pfc);
  1403.  } 
  1404. function fncapback()
  1405.  {
  1406.  var prc = m_phost.ActiveView.RowAxis.Label;
  1407.  var pcc = m_phost.ActiveView.ColumnAxis.Label;
  1408.  var pdc = m_phost.ActiveView.DataAxis.Label;
  1409.  var pfc = m_phost.ActiveView.FilterAxis.Label;
  1410.  prc.BackColor = tdcapbackbox.style.backgroundColor;
  1411.  pcc.BackColor = tdcapbackbox.style.backgroundColor;
  1412.  pdc.BackColor = tdcapbackbox.style.backgroundColor;
  1413.  pfc.BackColor = tdcapbackbox.style.backgroundColor;
  1414.  fnerrorchk(prc);
  1415.  fnerrorchk(pcc);
  1416.  fnerrorchk(pdc);
  1417.  fnerrorchk(pfc);
  1418.  }
  1419. function fnadvdetails()
  1420.  {
  1421.  m_phost.AllowDetails = idadvdet.checked;
  1422.  fnerrorchk(m_phost);
  1423.  }
  1424. function fnadvfilter()
  1425.  {
  1426.  m_phost.AllowFiltering = !inadvfil.checked;
  1427.  fnerrorchk(m_phost);
  1428.  }
  1429. function fnadvgrp()
  1430.  {
  1431.  m_phost.AllowGrouping = !inadvgrp.checked;
  1432.  fnerrorchk(m_phost);
  1433.  }
  1434. function fnadvprop()
  1435.  {
  1436.  m_phost.AllowPropertyToolbox = inadvprop.checked;
  1437.  fnerrorchk(m_phost);
  1438.  }
  1439. function fnadvautofit()
  1440.  {
  1441.  m_phost.AutoFit = inadvautofit.checked;
  1442.  fnerrorchk(m_phost);
  1443.  }
  1444. function fnadvheight()
  1445.  {
  1446.  m_phost.MaxHeight = inadvmaxheight.value;
  1447.  fnerrorchk(m_phost);
  1448.  }
  1449. function fnadvwidth()
  1450.  {
  1451.  m_phost.MaxWidth = inadvmaxwidth.value;
  1452.  fnerrorchk(m_phost);
  1453.  }
  1454. function fnadvdetavail()
  1455.  {
  1456.  m_phost.HasDetails = inadvdetavail.checked;
  1457.  fnerrorchk(m_phost);
  1458.  }
  1459. function fnadvrtl()
  1460.  {
  1461.  m_phost.RightToLeft = inadvrtl.checked;
  1462.  fnerrorchk(m_phost);
  1463.  }
  1464. function fndatasrcrb()
  1465.     {
  1466.     inadvconn.value = "";
  1467.     sladvdatasource.disabled = false;
  1468.     sladvdatasource.value = m_iDSC;
  1469.     inadvconn.disabled = true;
  1470.     buttconnedit.disabled = true;
  1471.     inadvconn.style.backgroundColor = "buttonface";
  1472.     sladvdatasource.style.backgroundColor = "";
  1473.     
  1474.     
  1475.     indatamem.checked = true;
  1476.     indatatext.disabled = true;
  1477.     
  1478.     fndatamemrb();
  1479.     }
  1480. function fndatastrrb()
  1481.     {
  1482.     inadvconn.value = m_strConn;
  1483.     sladvdatasource.value = -1;
  1484.     sladvdatasource.disabled = true;
  1485.     inadvconn.disabled = false;
  1486.     buttconnedit.disabled = false;
  1487.     inadvconn.style.backgroundColor = "";
  1488.     sladvdatasource.style.backgroundColor = "buttonface";
  1489.     if (m_phost.ProviderType == 3)
  1490.         indatatext.disabled = true;
  1491.     else
  1492.         indatatext.disabled = false;
  1493.     
  1494.     }
  1495. function fndatamemrb()
  1496.     {
  1497.     inadvcommand.value = "";
  1498.     sladvdatamember.disabled =false;
  1499.     fnsetselect(m_phost.DataMember, sladvdatamember);
  1500.     inadvcommand.disabled = true;
  1501.     sladvdatamember.style.backgroundColor = "";
  1502.     inadvcommand.style.backgroundColor = "buttonface";
  1503.     }
  1504. function fndatatextrb()
  1505.     {
  1506.     inadvcommand.value = m_strCommand;
  1507.     sladvdatamember.value = -1;
  1508.     sladvdatamember.disabled = true;
  1509.     inadvcommand.disabled = false;
  1510.     sladvdatamember.style.backgroundColor = "buttonface";
  1511.     inadvcommand.style.backgroundColor = "";
  1512.     }
  1513. function cleardsc()
  1514.     {
  1515.     if (m_iDSC >= 0)
  1516.         {
  1517.         var ees = m_pDSC[m_iDSC].ElementExtensions;
  1518.         var nCountEES = ees.Count;
  1519.         for (var index = 0; index < nCountEES; index++)
  1520.             {
  1521.             if (ees(index).ElementID == m_phost.Parent.ID)
  1522.                 {
  1523.                 ees.Delete (index);
  1524.                 break;
  1525.                 }
  1526.             }
  1527.         }
  1528.     }
  1529. function fnconneditor()
  1530.     {
  1531.     var strConn;
  1532.     cleardsc();
  1533.     m_phost.LocateDataSource();
  1534.     strConn = m_phost.ConnectionString;
  1535.     if (strConn != "" && m_strConn != strConn)
  1536.         {
  1537.         inadvconn.value = strConn;
  1538.         m_strConn = strConn;
  1539.         fnclearopts(sladvdatamember);
  1540.         if (m_phost.DataSource != null)
  1541.             {
  1542.             sladvdatasource.value = -1;
  1543.             fnsetdmopts(m_phost.DataSource);
  1544.             }
  1545.         }
  1546.     }
  1547. function fnadvconn()
  1548.     {
  1549.     if (m_strConn == inadvconn.value)
  1550.         return;
  1551.     m_strConn = inadvconn.value;
  1552.     m_phost.DataSource=null;
  1553.     cleardsc();
  1554.     if (inadvconn.value == "")
  1555.         m_phost.ConnectionString = "";
  1556.     else
  1557.         m_phost.ConnectionString = inadvconn.value;
  1558.     var fError = fnerrorchk(m_phost);
  1559.     fnclearopts(sladvdatamember);
  1560.     if (inadvconn.value != "" && m_phost.DataSource != null)
  1561.         {
  1562.         sladvdatasource.value = -1;
  1563.         if (!fError)
  1564.             fnsetdmopts(m_phost.DataSource);
  1565.         }
  1566.     }
  1567. function fnadvcommand()
  1568.     {
  1569.     if (m_strCommand == inadvcommand.value)
  1570.         return;
  1571.     m_strCommand = inadvcommand.value;
  1572.     m_phost.CommandText = inadvcommand.value;
  1573.     fnerrorchk(m_phost);
  1574.     sladvdatamember.value = -1;
  1575.     }
  1576. function fnadvds()
  1577.  {
  1578.      var pDSCCur;
  1579.      if (sladvdatasource.value == -1)
  1580.         {
  1581.         m_phost.DataSource = ""
  1582.         m_phost.ConnectionString = m_strConn;
  1583.         inadvconn.value = m_strConn;
  1584.         fnsetdmopts(m_phost.DataSource);
  1585.         return;
  1586.         }
  1587.      else if (sladvdatasource.value == "")
  1588.          return;
  1589.      cleardsc();
  1590.      pDSCCur = m_pDSC[sladvdatasource.value];
  1591.  m_phost.DataSource = pDSCCur.Object;
  1592.  if (fnerrorchk(m_phost))
  1593.         return;
  1594.      m_phost.ConnectionString = "";
  1595.      inadvconn.value="";
  1596.      m_iDSC = sladvdatasource.value;
  1597.      m_pDSC[sladvdatasource.value].ElementExtensions.Add (m_phost.Parent.ID);
  1598.      m_pDSC[sladvdatasource.value].ElementExtensions(m_phost.Parent.ID).ConsumesRecordset = true;
  1599.  fnerrorchk(m_phost);
  1600.      fnsetdmopts(m_pDSC[sladvdatasource.value]);
  1601.  }
  1602. function fnsetdmopts(pDSCCur)
  1603.     {
  1604.     var i;
  1605.     var nCount;
  1606.     var stName;
  1607.     fnclearopts(sladvdatamember);
  1608.     if (pDSCCur == null)
  1609.         {
  1610.         return;
  1611.         }
  1612.     var strings;
  1613.     var data;
  1614.     strings = null;
  1615.     strings = m_phost.DataMemberStrings;
  1616.     if (fInDataUpdate && m_phost.LastErrorValue != 0)
  1617.         return; 
  1618.     if (!fnerrorchk(m_phost) && strings != null)
  1619.         {
  1620.         data = strings.toArray();
  1621.         var i;
  1622.         var count;
  1623.         for (i = 0, count = data.length ; i < count; i++)
  1624.             fnpivotaddopts(sladvdatamember, data[i], data[i]);
  1625.         }
  1626.     }
  1627. function fnadvdm()
  1628.     {
  1629.     var pDSCCur;
  1630.     pDSCCur = m_pDSC[sladvdatasource.value];
  1631.     if ((indatadsc.checked && pDSCCur == null) || (indatastr.checked && m_strConn == ""))
  1632.         return;
  1633.     
  1634.     m_strDataMember = sladvdatamember.value;
  1635.     m_phost.DataMember = "";
  1636.     m_phost.DataMember = sladvdatamember.value;
  1637.     fnerrorchk(m_phost);
  1638.     inadvcommand.value = "";
  1639.     }  
  1640.     
  1641. function fnmemadvae()
  1642.  {
  1643.  m_phost.MemberExpand = inmemadvae.value;
  1644.  }
  1645.       
  1646. function fnfontsel()
  1647.  {
  1648.  switch(m_iseltype)
  1649.   {
  1650.   case 0:
  1651.   return m_phost.ActiveView;
  1652.   case 1:
  1653.   return m_Selection;
  1654.   case 2:
  1655.   return m_phost.ActiveView;
  1656.   case 3:
  1657.   return m_phost.ActiveView;
  1658.   case 4:
  1659.   return m_Selection0.Field;
  1660.   defualt:
  1661.   return null;
  1662.   }
  1663.  }
  1664. function fnalignsel()
  1665.  {
  1666.  switch(m_iseltype)
  1667.   {
  1668.   case 0:
  1669.   return m_phost.ActiveView;
  1670.   case 1:
  1671.   return m_Selection;
  1672.   case 2:
  1673.   return m_Selection;
  1674.   case 3:
  1675.   return m_phost.ActiveView;
  1676.   defualt:
  1677.   return null;
  1678.   }
  1679.  }
  1680. function fnfontswitch(psel)
  1681.  {
  1682.  switch(m_iseltype)
  1683.   {
  1684.   case 0:
  1685.   return psel.FieldLabelFont;
  1686.   case 1:
  1687.               var pfs = psel.FieldSet;
  1688.              if(pfs == null)
  1689.                     return;
  1690.              if (psel.FieldSet.Orientation & 7)
  1691.             return m_phost.ActiveView.FieldLabelFont;
  1692.          else
  1693.             return psel.DetailFont;
  1694.   case 2:
  1695.   return psel.TotalFont;
  1696.   case 3:
  1697.   return psel.MemberFont;
  1698.   case 4:
  1699.   return psel.SubtotalFont;
  1700.   default:
  1701.   return null;
  1702.   }
  1703.  }  
  1704. function fnbgswitch(psel,clr)
  1705.  {
  1706.  switch(m_iseltype)
  1707.   {
  1708.   case 0:
  1709.          
  1710.   psel.FieldLabelBackColor = clr;
  1711.   return psel;
  1712.   case 1:
  1713.          if (psel.FieldSet.Orientation & 7)
  1714.              m_phost.ActiveView.FieldLabelBackColor = clr;
  1715.          else
  1716.        psel.DetailBackColor = clr;
  1717.   return psel;
  1718.   case 2:
  1719.   psel.TotalBackColor = clr;
  1720.   return psel;
  1721.   case 3:
  1722.   psel.MemberBackColor = clr;
  1723.   return psel;
  1724.   case 4:
  1725.   psel.SubtotalBackColor = clr;
  1726.   return psel;
  1727.   default:
  1728.   return null;
  1729.   }
  1730.  }   
  1731. function fnvalignswitch(psel,val)
  1732.  {
  1733.  switch(m_iseltype)
  1734.   {
  1735.   case 1:
  1736.   psel.DetailVAlignment = val ;
  1737.   break;
  1738.   case 2:
  1739.   psel.TotalVAlignment = val;
  1740.   break;
  1741.   case 3:
  1742.   psel.MemberVAlignment = val;
  1743.   break;
  1744.   case 4:
  1745.   psel.SubtotalVAlignment = val;
  1746.   break;
  1747.   default:
  1748.   break;
  1749.   }
  1750.  return psel;
  1751.  }   
  1752. function fnhalignswitch(psel,val)
  1753.  {
  1754.  switch(m_iseltype)
  1755.   {
  1756.   case 1:
  1757.   psel.DetailHAlignment = val;
  1758.   break;
  1759.   case 2:
  1760.   psel.HAlignment = val;
  1761.   break;
  1762.   case 3:
  1763.   psel.MemberHAlignment = val;
  1764.   break;
  1765.   case 4:
  1766.   psel.SubtotalHAlignment =val;
  1767.   break;
  1768.   default:
  1769.   break;
  1770.   }
  1771.  return psel;   
  1772.  }
  1773. function fnhval(psel)
  1774.  {
  1775.  var val;
  1776.  switch(m_iseltype)
  1777.   {
  1778.   case 1:
  1779.   val = psel.DetailHAlignment;
  1780.   break;
  1781.   case 2:
  1782.   val = psel.TotalHAlignment;
  1783.   break;
  1784.   case 3:
  1785.   val = psel.MemberHAlignment;
  1786.   break;
  1787.   case 4:
  1788.   val = psel.SubtotalHAlignment;
  1789.   break;
  1790.   default:
  1791.   break;
  1792.   }
  1793.  return val;   
  1794.  }
  1795. function fnvval(psel)
  1796.  {
  1797.  var val;
  1798.  switch(m_iseltype)
  1799.   {
  1800.   case 1:
  1801.   val = psel.DetailVAlignment;
  1802.   break;
  1803.   case 2:
  1804.   val = psel.TotalVAlignment;
  1805.   break;
  1806.   case 3:
  1807.   val = psel.MemberVAlignment;
  1808.   break;
  1809.   case 4:
  1810.   val = psel.SubtotalVAlignment;
  1811.   break;
  1812.   default:
  1813.   break;
  1814.   }
  1815.  return val;   
  1816.  }
  1817. function fnselectdisp(idisp)
  1818.  {
  1819.  var dispmap,i;
  1820.      if (window == null)
  1821.         return;
  1822.      if (window.m_ppanels == null)
  1823.         return;
  1824.  var iln = window.m_ppanels.length;
  1825.  for(i=0;i<iln;i++)
  1826.   {
  1827.   dispmap = (m_ilastdisp^idisp);
  1828.   if((dispmap >> i) & 1)
  1829.    {
  1830.    if(((dispmap & idisp) >> i) & 1)
  1831.     {
  1832.     window.m_ppanels[i].style.display = "";
  1833.     if(window.m_ppanels[i].State)
  1834.       window.m_ppanels[i].Panel.style.display = "";  
  1835.     }
  1836.    else
  1837.     {
  1838.     window.m_ppanels[i].style.display = "none";
  1839.     window.m_ppanels[i].Panel.style.display = "none";
  1840.     }
  1841.    }
  1842.   }
  1843.  m_ilastdisp = idisp;
  1844.  }  
  1845. function fnGetPanels()
  1846.  {
  1847.  return m_ppanels;
  1848.  }
  1849. function fnpopulatedatasources()
  1850. {
  1851.     var par;
  1852.     par = null;
  1853.     if (m_phost == null)
  1854.         {
  1855.         return;
  1856.         }
  1857.     par = m_phost.Parent;
  1858.     if (par == null)
  1859.         {
  1860.         return;
  1861.         }
  1862. var rgDocCol,i,iln,fHasDSC;
  1863.     var stDisplay, stConn;
  1864.     var dscCur;
  1865. m_pDSC = new Array();
  1866. fnclearopts(sladvdatasource);
  1867. fnclearopts(sladvdatamember);
  1868.     m_strConn = m_phost.ConnectionString;
  1869.     m_strCommand = m_phost.CommandText;
  1870.     m_iDSC = -1;
  1871.     m_strDataMember = "";
  1872.     if (m_strConn != "")
  1873.         {
  1874.         indatastr.checked = true;
  1875.         fndatastrrb();
  1876.         }
  1877.     else
  1878.         {
  1879.         indatadsc.checked = true;
  1880.         fndatasrcrb();
  1881.         }
  1882.     if (m_phost.Parent.Document == null)
  1883.         {
  1884.         if (m_strCommand != "" && m_phost.ProviderType != 3) 
  1885.             {
  1886.             indatatext.checked = true;
  1887.             fndatatextrb();
  1888.             }
  1889.         else
  1890.             {
  1891.             indatamem.checked = true;
  1892.             fnsetdmopts(m_phost.DataSource);
  1893.             fndatamemrb();
  1894.             }
  1895.         return;
  1896.         }
  1897.     dscCur = m_phost.DataSource;
  1898. rgDocCol = m_phost.Parent.Document.All.tags("OBJECT");
  1899. fnerrorchk(m_phost);
  1900. fHasDSC = false;
  1901. iln = rgDocCol.length; 
  1902. for(i = 0;i < iln;i++)
  1903.  {
  1904.          
  1905.  if (rgDocCol[i] != null && rgDocCol[i].classid.search("0002E530-0000-0000-C000-000000000046") > 0)
  1906.   {
  1907.   m_pDSC[m_pDSC.length] = rgDocCol[i];
  1908.   fHasDSC = true
  1909.   } 
  1910.  }
  1911. if (fHasDSC || dscCur != null)
  1912.         {
  1913.         iln = m_pDSC.length;
  1914.         for (i = 0; i < iln; i++)
  1915.             {
  1916.             stDisplay = m_pDSC[i].id
  1917.             fnpivotaddopts(sladvdatasource, stDisplay, i);
  1918.             if (dscCur != null && dscCur.ConnectionString == m_pDSC[i].ConnectionString)
  1919.                 {
  1920.                 sladvdatasource.value = i;
  1921.                 m_iDSC = i;
  1922.                 }
  1923.             }
  1924.         fnsetdmopts(m_phost.DataSource);
  1925.         }
  1926.     if (m_strCommand != "" && m_phost.ProviderType != 3) 
  1927.         {
  1928.         indatatext.checked = true;
  1929.         fndatatextrb();
  1930.         }
  1931.     else
  1932.         {
  1933.         indatamem.checked = true;
  1934.         fndatamemrb();
  1935.         if (m_phost.ProviderType == 3)
  1936.             indatatext.disabled = true;
  1937.         else if (!indatadsc.checked)
  1938.             indatatext.disabled = false;
  1939.         }
  1940.     
  1941. }
  1942. function IsFunctionValid(enumDataType, enumFunction)
  1943.     {
  1944.     if (enumFunction == 0 ||
  1945.         enumFunction == 5  ||
  1946.         enumFunction == 6  ||
  1947.         enumFunction == 7)
  1948.         return false;
  1949.     switch (enumDataType)
  1950.         {
  1951.         case 16:
  1952.         case 2:
  1953.         case 3:
  1954.         case 20:
  1955.         case 17:
  1956.         case 18:
  1957.         case 19:
  1958.         case 21:
  1959.         case 4:
  1960.         case 5:
  1961.         case 6:
  1962.         case 14:
  1963.         case 131:
  1964.         case 11:
  1965.         case 139:
  1966.             return true;
  1967.         case 7:
  1968.         case 133:
  1969.         case 134:
  1970.         case 135:
  1971.             return (enumFunction == 2 || enumFunction == 3 || enumFunction == 4);
  1972.         }
  1973.     return (enumFunction == 2);
  1974.     }
  1975. function fnDataTypeStr(enumDataType)
  1976.     {
  1977.     switch (enumDataType)
  1978.         {
  1979.         case 0: return divDTEmpty.innerText;
  1980.         case 1: return divDTNull.innerText;
  1981.         case 2: return divDTSmallInt.innerText;
  1982.         case 3: return divDTInteger.innerText;
  1983.         case 4: return divDTSingle.innerText;
  1984.         case 5: return divDTDouble.innerText;
  1985.         case 6: return divDTCurrency.innerText;
  1986.         case 7: return divDTDate.innerText;
  1987.         case 8: return divDTBSTR.innerText;
  1988.         case 9: return divDTIDispatch.innerText;
  1989.         case 10: return divDTError.innerText;
  1990.         case 11: return divDTBoolean.innerText;
  1991.         case 12: return divDTVariant.innerText;
  1992.         case 13: return divDTIUnknown.innerText;
  1993.         case 14: return divDTDecimal.innerText;
  1994.         case 16: return divDTTinyInt.innerText;
  1995.         case 17: return divDTUnsignedTinyInt.innerText;
  1996.         case 18: return divDTUnsignedSmallInt.innerText;
  1997.         case 19: return divDTUnsignedInt.innerText;
  1998.         case 20: return divDTBigInt.innerText;
  1999.         case 21: return divDTUnsignedBigInt.innerText;
  2000.         case 64: return divDTFileTime.innerText;
  2001.         case 72: return divDTGUID.innerText;
  2002.         case 128: return divDTBinary.innerText;
  2003.         case 129: return divDTChar.innerText;
  2004.         case 130: return divDTWChar.innerText;
  2005.         case 131: return divDTNumeric.innerText;
  2006.         case 132: return divDTUserDefined.innerText;
  2007.         case 133: return divDTDBDate.innerText;
  2008.         case 134: return divDTDBTime.innerText;
  2009.         case 135: return divDTDBTimeStamp.innerText;
  2010.         case 136: return divDTChapter.innerText;
  2011.         case 137: return divDTDBFileTime.innerText;
  2012.         case 138: return divDTPropVariant.innerText;
  2013.         case 139: return divDTVarNumeric.innerText;
  2014.         case 200: return divDTVarChar.innerText;
  2015.         case 201: return divDTLongVarChar.innerText;
  2016.         case 202: return divDTVarWChar.innerText;
  2017.         case 203: return divDTLongVarWChar.innerText;
  2018.         case 204: return divDTVarBinary.innerText;
  2019.         case 205: return divDTLongVarBinary.innerText;
  2020.         default: return "";
  2021.         }
  2022.     }
  2023. function fnFieldTypeStr(enumDataType)
  2024.     {
  2025.     switch (enumDataType)
  2026.         {
  2027.         case 1: return divDTTypeRegular.innerText;
  2028.         case 2: return divDTTypeCalculated.innerText;
  2029.         case 3: return divDTTypeTime.innerText;
  2030.         case 4: return divDTTypeTimeYears.innerText;
  2031.         case 5: return divDTTypeTimeHalfYears.innerText;
  2032.         case 6: return divDTTypeTimeQuarters.innerText;
  2033.         case 7: return divDTTypeTimeMonths.innerText;
  2034.         case 8: return divDTTypeTimeWeeks.innerText;
  2035.         case 9: return divDTTypeTimeDays.innerText;
  2036.         case 10: return divDTTypeTimeHours.innerText;
  2037.         case 11: return divDTTypeTimeMinutes.innerText;
  2038.         case 12: return divDTTypeTimeSeconds.innerText;
  2039.         case 13: return divDTTypeTimeUndefined.innerText;
  2040.         case 14: return divDTTypeUnknown.innerText;
  2041.         case 15: return divDTTypeUserDefined.innerText;
  2042.         default: return "";
  2043.         }
  2044.     }
  2045. function fnFieldSetTypeStr(enumDataType)
  2046.     {
  2047.     switch (enumDataType)
  2048.         {
  2049.         case 3: return divDTFieldSetTypeUnknown.innerText;
  2050.         case 1: return divDTFieldSetTypeTime.innerText;
  2051.         case 4: return divDTFieldSetTypeUserDefined.innerText;
  2052.         case 2: return divDTFieldSetTypeOther.innerText;
  2053.         default: return "";
  2054.         }
  2055.     }
  2056. function fnFieldSetOrientation(enumDataType)
  2057.     {
  2058.     switch (enumDataType)
  2059.         {
  2060.         case 0: return divDTOrientationNone.innerText;
  2061.         case 1: return divDTOrientationColumnAxis.innerText;
  2062.         case 2: return divDTOrientationRowAxis.innerText;
  2063.         case 4: return divDTOrientationFilterAxis.innerText;
  2064.         case 8: return divDTOrientationDataAxis.innerText;
  2065.         default: return "";
  2066.         }
  2067.     }
  2068.